Optimizations in Stream Programming for Multimedia Applications
نویسندگان
چکیده
Multimedia applications are the most dominant workload in desktop and mobile computing. Such applications regularly process continuous sequences of data and can be naturally represented under the stream programming domain to take take advantage of domain-specific optimizations. Exploiting characteristics specific to multimedia programs can provide further significant impact on performance for this class of programs. This thesis identifies many multimedia applications that maintain induction variable state, which directly inhibits data parallelism for the program. We demonstrates it is essential to recognize and parallelize filters with induction variable state to enable scalable parallelization. We eliminate such state by introducing a new language construct that automatically returns the current iteration number of a target filter. This thesis also exploits the fact that multimedia applications are tolerant in the accuracy of the program output. We apply a memoization technique that exploits this tolerance and the repetitive nature of multimedia data. We provide a runtime system that automatically tunes the memoization capabilities for performance and output quality. These optimizations are implemented in the StreamIt programmming language. The necessity of parallelizing induction variable state and performance improvements and quality control of our memoization technique is demonstrated by a case study of the MPEG benchmark. Thesis Supervisor: Saman Amarasinghe Title: Professor
منابع مشابه
SIFt: A Compiler for Streaming Applications
Due to the increasing popularity of multimedia content and wireless computing, streaming applications have become an important part of modern computing workloads. Several hardware architectures that are geared towards such applications have been proposed, but compiler support for streams has not kept pace. This thesis presents an intermediate format and set of compilation techniques for a strea...
متن کاملLanguage Runtime and Optimizations in IBM Streams
Stream processing is important for continuously transforming and analyzing the deluge of data that has revolutionized our world. Given the diversity of application domains, streaming applications must be both easy to write and performant. Both goals can be accomplished by high-level programming languages. Dedicated language syntax helps express stream programs clearly and concisely, whereas the...
متن کاملImplementation and Evaluation of a Multimedia File System
This paper describes the implementation and evaluation of MMFS, a MultiMedia File System that extends the UNIX File System (UFS) speciically for interactive multimedia applications. MMFS supports a two-dimensional le structure for single-medium editing and multiple-media playback environments. The API allows the communication of application-speciic information to MMFS for performance optimizati...
متن کاملSurvey on Stream Processors and Graphics Processing Units
Architectures for parallel computing are becoming all the more essential with the increasing demands of multimedia, scientific, and engineering applications. These applications require architectures which can scale to meet their real-time constraints, with all current technology limitations in mind such as the memory gap, and power wall. While current many-core CPU architectures show an increas...
متن کاملHitting the Sweet Spot for Streaming Languages: Dynamic Expressivity with Static Optimization
Developers increasingly use stream processing languages to write applications that process large volumes of data with high throughput. Unfortunately, when choosing which stream processing language to use, they face a difficult choice. On the one hand, dynamically scheduled languages allow developers to write a wider range of applications, but cannot take advantage of many crucial optimizations....
متن کامل